One of my New Year's Resolutions is to build something each month. This week, I finished my January Project BooknoteWorthy. This is a single page application that extracts highlights and notes from Apple Books and allows the exported content to be styled with templates.
I had this idea because I do most of my reading in Apple Books and wanted to keep a section for quotes from the books in my Obsidian book notes. I knew I could use Readwise, but didn't want to pay for the monthly subscription just for this feature, so I decided to write a program myself.
The design and tech stack changed a lot over the months. At first, I wanted to build a desktop app with electron and next.js. My progress was slow so I used a Jupyter notebook to test my ideas. Then I thought using Python should be easier so I tried PyQt. After that, I realized I don't really need an "app". A single page application is enough. A static site hosted on github pages is enough. This makes the project much simpler and only took me a week to finish. I'm not 100% satisfied with the the UI, but at least it works.
Things I learned:
I started this project in September or October last year. I had the idea way before that. When I didn't have a deadline, I would write for a few hours one day and just stop for weeks. Writing down that this was my January Project definitely helped me finish it.
When I started this project, I created several versions of UI; I thought about functions to import annotations from other reading apps such as WeRead and Kindle; I wanted to learn a new frontend framework; I thought about using a No-code platform. So many distractions. I have to remind myself that the most important thing is to make a working version first.
Do you write down what you want to do, what you did, how it turned out, and how your solve the problems when you code? I find recording each step to be extremely helpful. Now when I have problems, often I just need to refer to my notes, which saves a lot of time.
Still reading The Thursday Murder Club.
Building a GPT-3 app with Next.js and Vercel Edge Functions – Vercel
Caught in the Study Web - Cybernaut - Every
Training nanoGPT on my Journal
💌Subscribe and/or 📧Email